package org.soderiakelvy.controller.sujeto;

import java.util.ArrayList;
import java.util.Date;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;

import org.primefaces.event.SelectEvent;
import org.soderiakelvy.controller.util.Constante;
import org.soderiakelvy.controller.util.SelectOneMany;
import org.soderiakelvy.controller.util.Util;
import org.soderiakelvy.controller.util.Validar;
import org.soderiakelvy.model.domain.ComercializacionPackVO;
import org.soderiakelvy.model.domain.FrioCalorVO;
import org.soderiakelvy.model.domain.PackVO;
import org.soderiakelvy.model.domain.ProductoVO;
import org.soderiakelvy.model.domain.SucursalFrioCalorVO;
import org.soderiakelvy.model.domain.SucursalProductoVO;
import org.soderiakelvy.model.domain.SucursalVO;
import org.soderiakelvy.model.domain.SujetoVO;
import org.soderiakelvy.model.domain.TipoClienteVO;
import org.soderiakelvy.model.domain.VisitaVO;
import org.soderiakelvy.model.service.ProductoServicio;
import org.soderiakelvy.model.service.RepartoServicio;
import org.soderiakelvy.model.service.SucursalServicio;
import org.soderiakelvy.model.service.SujetoServicio;
import org.soderiakelvy.model.service.imp.ProductoServicioImp;
import org.soderiakelvy.model.service.imp.RepartoServicioImp;
import org.soderiakelvy.model.service.imp.SucursalServicioImp;
import org.soderiakelvy.model.service.imp.SujetoServicioImpl;
import org.soderiakelvy.model.util.ConstantModel;

/**
 * @author Pablo
 *
 */
/**
 * @author Pablo
 *
 */
@ManagedBean
@SessionScoped
public class SujetoResidencialEdit {
	
	private String nombreCompleto;
	private String direccionCompleta;
	private VisitaVO visita;
	private String[] diasSeleccionados;
	
	List<SucursalProductoVO> listSucursalProducto;
	List<SucursalFrioCalorVO> listSucursalfrioCalor;
	
	private ProductoVO[] productosSeleccionados1; 
	
	private List<ProductoVO> listaProductoPrecio;
	
	private ComercializacionPackVO comPack;
	
	private SucursalVO sucursal;
	private SujetoVO sujeto;
	
	private List<FrioCalorVO> listaFrioCalor = SelectOneMany.getAllFrioCalorDisponibles();
	private List<FrioCalorVO> listaFrioCalorSeleccionados = new ArrayList<FrioCalorVO>();
	private FrioCalorVO frioCalorSeleccionado;

	private String ubicacion = "";
	
	// variables para validar
			private String deshabilitarGuardar = "false";
			private boolean nombreValido = true;
			private boolean apellidoValido = true;
			private boolean barrioValido = true;
			private boolean calleValido = true;
			private boolean numeroValido = true;
			private boolean tipoClienteValido = true;
			private String numero;
			

	/**
	 * Constructor de Sujeto Residencial Edit
	 */
	public SujetoResidencialEdit() {
		System.out.println("CONSTRUCTOR DE SUJETO RESIDENCIAL EDIT");
		
		comPack = new ComercializacionPackVO();
		visita = new VisitaVO();
		
		sujeto = new SujetoVO();
		
		FacesContext fc = FacesContext.getCurrentInstance();
		Map<String,Object> sessionParams = fc.getExternalContext().getSessionMap();
		sucursal = (SucursalVO) sessionParams.get("sucursal");
		
		System.out.println("tiposujeto"+sucursal.getSujeto().getTipoCliente().getNombre());

		obtenerNombreDireccionCompleta();
		obtenerProductosPacks();
		obtenerRepartoVisita();
	}

	private void obtenerNombreDireccionCompleta(){
		this.setNombreCompleto(Util.getNombreCompleto(sucursal));// ver clase UTIL
		this.setDireccionCompleta(Util.getDireccion(sucursal));
	}
	
	private void obtenerProductosPacks(){
	//----CARGAR PRODUCTOS-----------
		SucursalServicio ss = new SucursalServicioImp();
		listSucursalProducto = ss.getSucursalProductoBySucursal(sucursal);
				
	//---------------------------------------
	// ------CARGAR PACK---------------------
		if (listSucursalfrioCalor != null){
			listSucursalfrioCalor = null;
		}
		
		if (ss.getComercializacionesPackBySucursal(sucursal) != null){
			
			this.setComPack(ss.getComercializacionesPackBySucursal(sucursal).get(0));

			//----CARGAR FRIO-CALOR-----------
			listSucursalfrioCalor = ss.getSucursalFrioCalorBySucursal(sucursal);
			System.out.println("SI TIENE PACK");
			//--------------------------------
		}else{
			System.out.println("NO TIENE PACK");
			this.comPack.getPack().setNombre("");
		}
	//-------------------------------
	}
	
	private void obtenerRepartoVisita(){
		
		//----CARGAR VISITA---------------
		RepartoServicio rs = new RepartoServicioImp();
		visita = rs.getVisitaBySucursal(sucursal);
		
		diasSeleccionados = new String[6];
		
		int k = 0;	
		
		if (visita.getLunes() == 1) {
			diasSeleccionados[k] = "1";
			++k;
		}
		if (visita.getMartes() == 1) {
			diasSeleccionados[k] = "2";
			++k;
		}
		if (visita.getMiercoles() == 1) {
			diasSeleccionados[k] = "3";
			++k;
		}
		if (visita.getJueves() == 1) {
			diasSeleccionados[k] = "4";
			++k;
		}
		if (visita.getViernes() == 1) {
			diasSeleccionados[k] = "5";
			++k;
		}
		if (visita.getSabado() == 1) {
			diasSeleccionados[k] = "6";
			++k;
		}
		//-----------CARGAR REPARTO---------------------
		System.out.println("reparto "+visita.getReparto().getNombre());
		//----------------------------------------------
	}
	
	public String cancelar(){
		return Constante.URL_RESIDENCIAL_LIST;
	}

	public String cancelarEdit(){
		return Constante.URL_RESIDENCIAL_EDIT;
	}

	public String cancelarEditVisita(){
		obtenerRepartoVisita();
		return Constante.URL_RESIDENCIAL_EDIT;
	}
	
	public String confirmEditContacto(){
		
//		System.out.println("Confirma la Modificacion de Datos de Contacto");
		obtenerNombreDireccionCompleta();
		//--------------------------------------------------
		SujetoServicio ss = new SujetoServicioImpl();
		sujeto.setTipoCliente(ss.getTipoClienteById(sujeto.getTipoCliente().getTipoClienteId()));
		//--------------------------------------------------
		
		sucursal.getSujeto().setTipoCliente(sujeto.getTipoCliente());
		
		//--------update Sujeto---------------------
		ss.updateSujetoVO(sucursal.getSujeto());
		//------------------------------------------
		//--------update Sucursal---------------------
		SucursalServicio sucursalServicio = new SucursalServicioImp();
		sucursalServicio.updateSucursal(sucursal);
		//------------------------------------------
		System.out.println("Modificacion exitosa de Datos de Contacto");
		return Constante.URL_RESIDENCIAL_EDIT;
	}
	
	public String confirmEditVisita(){
//		System.out.println("Confirma la Modificacion de Visita y Reparto");
//		System.out.println("el reparto seleccionado es "+visita.getReparto().getRepartoId());
		//----------------------------------------------------------------
		RepartoServicio rs = new RepartoServicioImp();
		visita.setReparto(rs.getRepartoById(visita.getReparto().getRepartoId()));
		guardarEditVisita();
		
		obtenerRepartoVisita();
		//----------------------------------------------------------------
		
		
		System.out.println("Modificacion exitosa de Datos de Visita y Reparto");
		return Constante.URL_RESIDENCIAL_EDIT;
	}
	
	private void guardarEditVisita(){
		visita.setLunes((short)0);
		visita.setMartes((short)0);
		visita.setMiercoles((short)0);
		visita.setJueves((short)0);
		visita.setViernes((short)0);
		visita.setSabado((short)0);
		
		for(int i = 0; i<diasSeleccionados.length;i++){	
			if(diasSeleccionados[i].equals("1")){
				visita.setLunes((short)1);
			}
			if(diasSeleccionados[i].equals("2")){
				visita.setMartes((short)1);
			}
			if(diasSeleccionados[i].equals("3")){
				visita.setMiercoles((short)1);
			}
			if(diasSeleccionados[i].equals("4")){
				visita.setJueves((short)1);
			}
			if(diasSeleccionados[i].equals("5")){
				visita.setViernes((short)1);
			}
			if(diasSeleccionados[i].equals("6")){
				visita.setSabado((short)1);
			}
		}
		RepartoServicio servicio = new RepartoServicioImp();
		servicio.updateVisita(visita);
	}
	
	public String confirmEditPackProductos(){
		System.out.println("Confirma la Modificacion de Pack & Productos");

		if (formularioValido()){
			System.out.println("Paso La validacion");
			System.out.println("eL Sujeto es =  "+sucursal.toString());
			
			// -----ELIMINO TODOS LOS SUCURSAL-PRODUCTOS---------
			SucursalServicio ss = new SucursalServicioImp();
			List<SucursalProductoVO> listSucursalProducto = ss.getSucursalProductoBySucursal(sucursal);
			
			for (SucursalProductoVO spVO : listSucursalProducto){
				System.out.println("Sucursal Producto es:      "+spVO.toString());
				ss.deleteSucursalProductoVO(spVO);
			}
			//---------------------------------------------------
			//-----ASIGNO SUCURSAL-PRODUCTOS A SUJETO-----------
			if (productosSeleccionados1.length > 0){
				SucursalServicio servicio = new SucursalServicioImp();
			//	servicio.assignProductosSucursal(sucursal, getProductosSeleccionados1());	
			}
			//---------------------------------------------------

			//-----ELIMINO TODOS LOS SUCURSAL-FRIOCALOR---------
			ProductoServicio ps = new ProductoServicioImp();
			List<SucursalFrioCalorVO> listSucursalFrioCalor = ss.getSucursalFrioCalorBySucursal(sucursal);
			for (SucursalFrioCalorVO sfcVO : listSucursalFrioCalor){
				ss.deleteSucursalFrioCalorVO(sfcVO);
				
				sfcVO.getFrioCalor().setEstado("FABRICA");
				ps.updateFrioCalorVO(sfcVO.getFrioCalor());
			}
			
			//---------------------------------------------------
			//-----------------MODIFICACION DE LOS FRIO CALOR A ESTADO FABRICA----------------------
			
//			for(FrioCalorVO fc : listaFrioCalorSeleccionados){
//				fc.setEstado("FABRICA");
//				ps.updateFrioCalorVO(fc);
//			}
			//---------------------------------------------------
			
			
			//------COMERCIALIZACION PACK-------------
			System.out.println("Comercializacion Pack es " + comPack.getPack().getPackId());		
			if (comPack.getPack().getPackId() != 0){
				//-----ASIGNO SUCURSAL-FRIOCALOR A SUJETO----------- 
				//convierte lista de frio calor en a arrat de friocalorseleccionados 
				FrioCalorVO[] equiposSeleccionados = (FrioCalorVO[]) listaFrioCalorSeleccionados.toArray(new FrioCalorVO[listaFrioCalorSeleccionados.size()]);
				ss.assignEquiposSucursal(sucursal, equiposSeleccionados);
				
				
				//-----------------MODIFICACION DE LOS FRIO CALOR A ESTADO CLIENTE----------------------------
				for(FrioCalorVO fc : listaFrioCalorSeleccionados){
					fc.setEstado("CLIENTE");
					ps.updateFrioCalorVO(fc);
				}
				//---------------------------------------------------	
				
				if (comPack.getComercializacionPackId() == null){//no tenia asignado una comercializacion pack
					comPack.setSucursal(sucursal);
					System.out.println("insertando un comercializacion pack xxxxxxxxx"+comPack.toString());
					System.out.println("xxx sucursal "+comPack.getSucursal().toString());
					
					
					comPack.setFechaAsignacion(new Date());
					
					ss.insertComercializcionPackVO(comPack);
				}else{//es una modificacion
					//------COMERCIALIZACION PACK-------------
					ss.updateComercializcionPackVO(comPack);
					//----------------------------------------	
				}
	
			}else{
				if (comPack.getComercializacionPackId() == null){//no tenia asignado una comercializacion pack
				
				}else{//---ELIMINAR
					ss.deleteComercializcionPackVO(ss.getComercializacionesPackBySucursal(sucursal).get(0));
					System.out.println("comercializacion "+ss.getComercializacionesPackBySucursal(sucursal).get(0));
					comPack.setCantidadPack(null);
				}
			}
			
			//---------------------------------------------------

			obtenerProductosPacks();
			return Constante.URL_RESIDENCIAL_EDIT;	
		}else{
			System.out.println("No paso la validacion");
			return "";
		}
	}

	/**
	 * @return
	 */
	private boolean formularioValido(){

//		System.out.println("Productos Seleccionados:   " + 	productosSeleccionados1.length);
//		System.out.println("Pack:   "+comPack.getPack().getPackId());
//		System.out.println("Frio Calor Seleccionados:   "+listaFrioCalorSeleccionados.size());

		ProductoServicio ps = new ProductoServicioImp();
//		this.comPack.getPack().setNombre(ps.getPackById(comPack.getPack().getPackId()).getNombre());		
//		System.out.println("Pack:  "+ this.comPack.getPack().getNombre());
		if ((this.productosSeleccionados1.length > 0) || (this.comPack.getPack().getPackId() != 0)){

			if (this.comPack.getPack().getPackId() != 0)  {
				
				if (this.listaFrioCalorSeleccionados.size() > 0){
					if(this.productosSeleccionados1.length > 0){
						// selecciono pack y productos validar si hay repetidos
						
						if (!existenRepetidos(productosSeleccionados1, comPack.getPack())){
							this.comPack.getPack().setNombre(ps.getPackById(comPack.getPack().getPackId()).getNombre());		
//							System.out.println("Pack:  "+ this.comPack.getPack().getNombre());
//							System.out.println("PASA LA VALIDACION: Selecciono Productos y Pack NO repetidos");
							return true;
						}else{
//							System.out.println("REPETIDOS");
//							System.out.println("ERROR: Selecciono Productos y Pack, se encuentraron productos repetidos en La lista de productos y Pack");
							FacesContext.getCurrentInstance().addMessage("form::messages", 
									new FacesMessage(FacesMessage.SEVERITY_FATAL,"Selecciono Productos y Pack, se encuentraron productos repetidos en La lista de productos y Pack", ""));
							return false;
						}
						
					}else{
						this.comPack.getPack().setNombre(ps.getPackById(comPack.getPack().getPackId()).getNombre());		
//						System.out.println("Pack:  "+ this.comPack.getPack().getNombre());
//						System.out.println("PASA LA VALIDACION: Solo Selecciono Pack");
						return true;
					}
				}else{
//					System.out.println("ERROR: Se ha seleccionado un pack y debe seleccionar al menos un Equipo FrioCalor");
					FacesContext.getCurrentInstance().addMessage("form::messages", 
							new FacesMessage(FacesMessage.SEVERITY_FATAL,"Se ha seleccionado un pack y debe seleccionar al menos un Equipo FrioCalor", ""));
					return false;
				}
			}else{
//				System.out.println("PASA LA VALIDACION: Solo Selecciono Productos");
				return true;	
			}
		}else{
//			System.out.println("ERROR: Debe seleccionar productos o packs");
			FacesContext.getCurrentInstance().addMessage("form::messages", 
					new FacesMessage(FacesMessage.SEVERITY_FATAL,"Debe seleccionar Productos o Packs ", ""));
			return false;
		}
	}
	
	private boolean existenRepetidos(ProductoVO[] productos , PackVO pack){
//		System.out.println("METODO EXITEN REPETIDOS");
		ProductoServicio ps = new ProductoServicioImp();
		pack = ps.getPackById(pack.getPackId());
		
		boolean existe = false;
		
		for(int i=0; i<productos.length;++i){
			if (pack.getProducto().getNombre().equals(productos[i].getNombre())){
				existe = true;
				break;
			} 
		}
//		System.out.println("FIN METODO EXITEN REPETIDOS ");
		return existe;
	}
	
	public String editContacto(){
		System.out.println("Edit Contacto");
		this.sujeto = this.sucursal.getSujeto();
		setNumero(String.valueOf(this.sucursal.getNumero())) ;
		System.out.println("Edit Contacto datos de tipo de cliente "+sujeto.getTipoCliente().getNombre());
		return Constante.URL_RESIDENCIAL_EDITCONTACTO;
	}
	
	public String editVisita(){
		return Constante.URL_RESIDENCIAL_EDITVISITA;
	}
	
	public String editProductosPacks(){
		
		listaProductoPrecio = SelectOneMany.getAllProductosConPrecio(sucursal.getSujeto().getTipoCliente().getTipoClienteId());
		
		int i = 0;
		productosSeleccionados1 = new ProductoVO[listSucursalProducto.size()];
		for (SucursalProductoVO sp : listSucursalProducto){
			//productosSeleccionados1[i] = sp.getProducto();
			System.out.println("el Producto es   "+productosSeleccionados1[i].getNombre());
			++i;
		}
		
		listaFrioCalor = SelectOneMany.getAllFrioCalorDisponibles();
		
		listaFrioCalorSeleccionados.removeAll(listaFrioCalorSeleccionados);
		//listaFrioCalorSeleccionados = null;
		
		if (listSucursalfrioCalor != null){
			for (SucursalFrioCalorVO sfc : listSucursalfrioCalor){
				sfc.getFrioCalor().setUbicacion(sfc.getUbicacion());
				listaFrioCalorSeleccionados.add(sfc.getFrioCalor());
			}	
		}
		
		if (comPack.getComercializacionPackId() == null){
			comPack = new ComercializacionPackVO();
			comPack.setCantidadPack(1);
			System.out.println(" comercializacionpackid es null");
		}
		
		return Constante.URL_RESIDENCIAL_EDITPRODUCTOSPACKS;
	}
	
	 public void onRowSelect(SelectEvent event) {  
	        FacesMessage msg = new FacesMessage("Frio Calor Seleccionado", ((FrioCalorVO) event.getObject()).getNumeroDeSerie());  
	        FacesContext.getCurrentInstance().addMessage(null, msg);  
	    }  
	
	 public void agregarEquipo(){
//		System.out.println("equipo agregado");
//		System.out.println("El equipo seleccionado es:   "+frioCalorSeleccionado.getNumeroDeSerie());
//		System.out.println("Ubicacion es "+ubicacion);
		frioCalorSeleccionado.setUbicacion(ubicacion);
		setUbicacion("");
		listaFrioCalorSeleccionados.add(frioCalorSeleccionado);
		listaFrioCalor.remove(frioCalorSeleccionado);
	}
	 
	public void quitarEquipoListener(FrioCalorVO fc){

		listaFrioCalor.add(fc);
		if  (listaFrioCalorSeleccionados.remove(fc)){
			System.out.println("Se elimino correamente   ");
		}
	} 
	 
	private static Map<String,Object> diasSemanales;
	static{
		diasSemanales = new LinkedHashMap<String,Object>();
		diasSemanales.put("Lunes", "1"); //label, value
		diasSemanales.put("Martes", "2");
		diasSemanales.put("Miercoles", "3");
		diasSemanales.put("Jueves", "4");
		diasSemanales.put("Viernes", "5");
		diasSemanales.put("Sabado", "6");
	}
	
	
	//---METODOS PARA LA VALIDACION   PAGINA 1-----
	
			public void listenerNombre(){
				if (this.sucursal.getNombre().isEmpty()||this.sucursal.getNombre() ==null){
					this.deshabilitarGuardar = "true";
					this.nombreValido = false;
					FacesContext.getCurrentInstance().addMessage("form::errorlblNombre", 
							new FacesMessage(FacesMessage.SEVERITY_FATAL,"El Nombre del Sujeto no puede ser Vacio", "para continuar "));
				}else{
					this.nombreValido = true;
					if (this.apellidoValido && this.barrioValido && this.calleValido && this.numeroValido && this.tipoClienteValido) {
						this.deshabilitarGuardar = "false"; //HABILITO GUARDAR
					}	
				}
			}
			
			public void listenerApellido(){
				
				if (this.sucursal.getApellido().isEmpty()||this.sucursal.getApellido() == null){
					this.deshabilitarGuardar = "true";
					this.apellidoValido = false;
					FacesContext.getCurrentInstance().addMessage("form::errorlblApellido", 
							new FacesMessage(FacesMessage.SEVERITY_FATAL,"El apellido del Sujeto no puede ser Vacio", "para continuar "));
				}else{
					this.apellidoValido = true;
					if (this.nombreValido && this.barrioValido && this.calleValido && this.numeroValido && this.tipoClienteValido) {
						this.deshabilitarGuardar = "false"; //HABILITO GUARDAR
					}	
				}
			}
			
			public void listenerBarrio(){
				if (this.sucursal.getBarrio().isEmpty()||this.sucursal.getBarrio() == null){
					this.deshabilitarGuardar = "true";
					this.barrioValido = false;
					FacesContext.getCurrentInstance().addMessage("form::errorlblBarrio", 
							new FacesMessage(FacesMessage.SEVERITY_FATAL,"El Barrio del Sujeto no puede ser Vacio", "para continuar "));
				}else{
					this.barrioValido = true;
					if (this.nombreValido && this.apellidoValido && this.calleValido && this.numeroValido  && this.tipoClienteValido) {
						this.deshabilitarGuardar = "false"; //HABILITO GUARDAR
					}	
				}
			}
			
			public void listenerCalle(){
				if (this.sucursal.getCalle().isEmpty()||this.sucursal.getCalle() == null){
					this.deshabilitarGuardar = "true";
					this.calleValido = false;
					FacesContext.getCurrentInstance().addMessage("form::errorlblCalle", 
							new FacesMessage(FacesMessage.SEVERITY_FATAL,"La  Calle del Sujeto no puede ser Vacio", "para continuar "));
				}else{
					this.calleValido = true;
					if (this.nombreValido && this.barrioValido && this.apellidoValido && this.numeroValido  && this.tipoClienteValido) {
						this.deshabilitarGuardar = "false"; //HABILITO GUARDAR
					}	
				}
			}
			
			public void listenerNumero(){
				
				if (Validar.isNumeroEntero(this.numero)){
					sucursal.setNumero(Integer.parseInt(this.numero));
					if (sucursal.getNumero() > 0){
						this.numeroValido = true;
						if (this.nombreValido && this.barrioValido && this.calleValido && this.apellidoValido  && this.tipoClienteValido) {
							this.deshabilitarGuardar = "false"; //HABILITO GUARDAR
						}	
					}else{ 
						this.deshabilitarGuardar = "true";
						this.numeroValido = false;
						FacesContext.getCurrentInstance().addMessage("form::errorlblNumero", 
								new FacesMessage(FacesMessage.SEVERITY_FATAL,"El Numero debe mayor que 0", "para continuar "));
					}
				}else{
					FacesContext.getCurrentInstance().addMessage("form::errorlblNumero", 
							new FacesMessage(FacesMessage.SEVERITY_FATAL,"El Numero debe ser un numerico", "para continuar "));
					this.deshabilitarGuardar = "true";
					this.numeroValido = false;
				}
			}
			
			public void listenerTipoCliente(){
				if (sujeto.getTipoCliente().getTipoClienteId() > 0){
					this.tipoClienteValido = true;
					if (this.nombreValido && this.apellidoValido && this.barrioValido && this.calleValido && this.numeroValido) {
						this.deshabilitarGuardar = "false"; //HABILITO GUARDAR
						System.out.println("HABILITO GUARDAR  en tipoCliente");
					}	
				}else{ 
					this.deshabilitarGuardar = "true";
					this.tipoClienteValido = false;
					FacesContext.getCurrentInstance().addMessage("form::errorlblTipoCliente", 
							new FacesMessage(FacesMessage.SEVERITY_FATAL,"Debe Seleccionar un Tipo de Cliente", "para continuar "));
				}
			}
			
			//----------------------------------
	
//---------GETTERS AND SETTERS------------------------
	
	public static Map<String, Object> getDiasSemanales() {
		return diasSemanales;
	}

	public static void setDiasSemanales(Map<String, Object> diasSemanales) {
		SujetoResidencialEdit.diasSemanales = diasSemanales;
	}

	public String getNombreCompleto() {
		return nombreCompleto;
	}

	public void setNombreCompleto(String nombreCompleto) {
		this.nombreCompleto = nombreCompleto;
	}

	public String getDireccionCompleta() {
		return direccionCompleta;
	}

	public void setDireccionCompleta(String direccionCompleta) {
		this.direccionCompleta = direccionCompleta;
	}

	public VisitaVO getVisita() {
		return visita;
	}

	public void setVisita(VisitaVO visita) {
		this.visita = visita;
	}

	public String[] getDiasSeleccionados() {
		return diasSeleccionados;
	}

	public void setDiasSeleccionados(String[] diasSeleccionados) {
		this.diasSeleccionados = diasSeleccionados;
	}

	public ComercializacionPackVO getComPack() {
		return comPack;
	}

	public void setComPack(ComercializacionPackVO comPack) {
		this.comPack = comPack;
	}


	public List<SucursalFrioCalorVO> getListSucursalfrioCalor() {
		return listSucursalfrioCalor;
	}

	public void setListSucursalfrioCalor(
			List<SucursalFrioCalorVO> listSucursalfrioCalor) {
		this.listSucursalfrioCalor = listSucursalfrioCalor;
	}

	public SucursalVO getSucursal() {
		return sucursal;
	}

	public void setSucursal(SucursalVO sucursal) {
		this.sucursal = sucursal;
	}

	public SujetoVO getSujeto() {
		return sujeto;
	}

	public void setSujeto(SujetoVO sujeto) {
		this.sujeto = sujeto;
	}

	public String getNumero() {
		return numero;
	}

	public void setNumero(String numero) {
		this.numero = numero;
	}

	public String getDeshabilitarGuardar() {
		return deshabilitarGuardar;
	}

	public void setDeshabilitarGuardar(String deshabilitarGuardar) {
		this.deshabilitarGuardar = deshabilitarGuardar;
	}

	public List<ProductoVO> getListaProductoPrecio() {
		return listaProductoPrecio;
	}

	public void setListaProductoPrecio(List<ProductoVO> listaProductoPrecio) {
		this.listaProductoPrecio = listaProductoPrecio;
	}

	public List<SucursalProductoVO> getListSucursalProducto() {
		return listSucursalProducto;
	}

	public void setListSucursalProducto(
			List<SucursalProductoVO> listSucursalProducto) {
		this.listSucursalProducto = listSucursalProducto;
	}

	public ProductoVO[] getProductosSeleccionados1() {
		return productosSeleccionados1;
	}

	public void setProductosSeleccionados1(ProductoVO[] productosSeleccionados1) {
		this.productosSeleccionados1 = productosSeleccionados1;
	}

	public List<FrioCalorVO> getListaFrioCalorSeleccionados() {
		return listaFrioCalorSeleccionados;
	}

	public void setListaFrioCalorSeleccionados(
			List<FrioCalorVO> listaFrioCalorSeleccionados) {
		this.listaFrioCalorSeleccionados = listaFrioCalorSeleccionados;
	}

	public FrioCalorVO getFrioCalorSeleccionado() {
		return frioCalorSeleccionado;
	}

	public void setFrioCalorSeleccionado(FrioCalorVO frioCalorSeleccionado) {
		this.frioCalorSeleccionado = frioCalorSeleccionado;
	}

	public List<FrioCalorVO> getListaFrioCalor() {
		return listaFrioCalor;
	}

	public void setListaFrioCalor(List<FrioCalorVO> listaFrioCalor) {
		this.listaFrioCalor = listaFrioCalor;
	}

	public String getUbicacion() {
		return ubicacion;
	}

	public void setUbicacion(String ubicacion) {
		this.ubicacion = ubicacion;
	}
}
